約 6,428,279 件
https://w.atwiki.jp/isoroku_be/pages/132.html
情報 作者名:zuzu 引用元:なでしこ質問掲示板「タスクバーのボタンを非表示にする方法」 リンク:●マウス消去、●XVGA解像度変更 勝手に改変 概要 指定したウィンドウをフルスクリーン化します。 解説 引数 HANDLE:対象ウィンドウのハンドル サンプルプログラム 「notepad.exe」を起動。 H=「無題 - メモ帳」を窓ハンドル検索。 Hを窓ハンドルフルスクリーン。 //本体 ●窓ハンドルフルスクリーン(HANDLEの|HANDLEを) SetWindowLong(HANDLE,-16,$80)。 ShowWindow(HANDLE,1)。 HANDLEに「0,0,{デスクトップW},{デスクトップH}」を窓ハンドルサイズ設定。 戻る。 ●SetWindowLong(w,i,l) =DLL("user32.dll", "long SetWindowLongA( hwnd hWnd, int nIndex, long dwNewLong)")。 ●ShowWindow(h,n) =DLL("user32.dll", "BOOL ShowWindow( HWND hWnd, int nCmdShow)")。 名前 コメント
https://w.atwiki.jp/vipvipcheese/pages/24.html
フルスクリーン 画面外が見れるフルスクリーンで遊ぶ為の方法を解説。 海外Wikiのページを参考にしています。 複数の方法があるから色々試してみそ。 フルスクリーン用アドレスで遊ぶ アドオンを入れる Flashファイル(swf)のURLを直接開く ブラウザの拡大機能を使う Flash再生ソフトを使う 専用ソフトを使う公式作者製 Baffler製 Baffler製(β版) Holypoop製 コメント フルスクリーン用アドレスで遊ぶ http //cheese.formice.com/fullscreen/?s=en アドオンを入れる ブラウザにより異なる。 FireFox、Google Chromeはアドオンを導入、Opera、IEはUser Scriptを導入。 FireFox:https //addons.mozilla.org/ja/firefox/addon/231179/ Google Chrome:https //chrome.google.com/extensions/detail/ckkjecacgfdkijoeokbhlfikohgociek?itemlang=nl Flashファイル(swf)のURLを直接開く ブラウザでゲームのローダーのURL(http //en.transformice.com/ChargeurTransformice.swf)を直接開く。 ブラウザの画面いっぱいにゲームが表示されるが、ブラウザを縦か横に細長く伸ばせば、上下・左右のどちらかは画面外まで見えるようになる。 ブラウザの拡大機能を使う 「Ctrl」+「+」、もしくは「Ctrl」+「マウスホイール」でブラウザの表示倍率を変更出来る。 Sleipnirの場合は「Alt」+「マウスホイール」。 →現在は対策されている為、使用不可能。 Flash再生ソフトを使う Adobe公式の「Flash Projector」がオススメ。 リンク先の「Download the Windows Flash Player 10.1 Projector (EXE, 5.30 MB)」をダウンロード。インストール不要。 起動したら、ローダーのURL(http //en.transformice.com/ChargeurTransformice.swf)を開き、画面を右クリック → 100% をクリック。 専用ソフトを使う 公式作者製 フォーラムトピック http //forum.transformice.com/viewtopic.php?f=35 t=6187 Windows http //exe.transformice.com/Transformice.exe Mac http //exe.transformice.com/Transformice.zip ゲーム作者による公式のソフト版。左側にサイドメニューがあってやや使いづらい。 Baffler製 http //www.reddit.com/r/transformice/comments/e49tc サーバーの切り替え、ログイン時に入る部屋の指定、画面の右寄せや左下寄せ、スクリーンショットの保存 などの便利な機能がついている。上の公式版よりはこっちの方が使いやすい。 動作に.NET frameworkが必要。 Baffler製(β版) http //www.reddit.com/r/transformice/comments/eet0z 上記ソフトの先行β版。タブ機能が追加されており、より便利に。 Holypoop製 http //www.reddit.com/r/transformice/comments/e5j5m タブ機能がついている。 コメント フルスクリーンモードの説明マジありがたい -- 名無しさん (2010-10-30 23 24 13) Holypoop製のリンク(ふぁぃる)切れている -- すっぺぺ (2012-04-12 20 34 01) 2013年6月26日ver1.8アップデータ後、ツール使えません。 -- 名無しさん (2013-06-27 15 12 45) 名前 コメント
https://w.atwiki.jp/vipviqcheese/pages/18.html
画面外が見れるフルスクリーンで遊ぶ為の方法を解説。 海外Wikiのページを参考にしています。 複数の方法があるから色々試してみそ。 フルスクリーン用アドレスで遊ぶ アドオンを入れる Flashファイル(swf)のURLを直接開く ブラウザの拡大機能を使う Flash再生ソフトを使う 専用ソフトを使う公式作者製 Baffler製 Baffler製(β版) Holypoop製 コメント フルスクリーン用アドレスで遊ぶ http //cheese.formice.com/fullscreen/?s=en アドオンを入れる ブラウザにより異なる。 FireFox、Google Chromeはアドオンを導入、Opera、IEはUser Scriptを導入。 FireFox:https //addons.mozilla.org/ja/firefox/addon/231179/ Google Chrome:https //chrome.google.com/extensions/detail/ckkjecacgfdkijoeokbhlfikohgociek?itemlang=nl Flashファイル(swf)のURLを直接開く ブラウザでゲームのローダーのURL(http //en.transformice.com/ChargeurTransformice.swf)を直接開く。 ブラウザの画面いっぱいにゲームが表示されるが、ブラウザを縦か横に細長く伸ばせば、上下・左右のどちらかは画面外まで見えるようになる。 ブラウザの拡大機能を使う 「Ctrl」+「+」、もしくは「Ctrl」+「マウスホイール」でブラウザの表示倍率を変更出来る。 Sleipnirの場合は「Alt」+「マウスホイール」。 →現在は対策されている為、使用不可能。 Flash再生ソフトを使う Adobe公式の「Flash Projector」がオススメ。 リンク先の「Download the Windows Flash Player 10.1 Projector (EXE, 5.30 MB)」をダウンロード。インストール不要。 起動したら、ローダーのURL(http //en.transformice.com/ChargeurTransformice.swf)を開き、画面を右クリック → 100% をクリック。 専用ソフトを使う 公式作者製 フォーラムトピック http //forum.transformice.com/viewtopic.php?f=35 t=6187 Windows http //exe.transformice.com/Transformice.exe Mac http //exe.transformice.com/Transformice.zip ゲーム作者による公式のソフト版。左側にサイドメニューがあってやや使いづらい。 Baffler製 ttp //www.reddit.com/r/transformice/comments/e49tc サーバーの切り替え、ログイン時に入る部屋の指定、画面の右寄せや左下寄せ、スクリーンショットの保存 などの便利な機能がついている。上の公式版よりはこっちの方が使いやすい。 動作に.NET frameworkが必要。 Baffler製(β版) ttp //www.reddit.com/r/transformice/comments/eet0z 上記ソフトの先行β版。タブ機能が追加されており、より便利に。 Holypoop製 ttp //www.reddit.com/r/transformice/comments/e5j5m タブ機能がついている。 コメント フルスクリーンモードの説明マジありがたい -- 名無しさん (2010-10-30 23 24 13) 名前 コメント
https://w.atwiki.jp/fenrirsleipnir/pages/95.html
目次 フルスクリーンで使用する(Sleipnir4のみ) タブバーを隠す フルスクリーンで使用する(Sleipnir4のみ) フルスクリーン表示のオプションを使用して、画面全体を使用してブラウジングすることができます。 フルスクリーン表示を使用するとタブバーが非表示になります。 ショートカット F11でフルスクリーン表示 アクションバーのフルスクリーンボタンでフルスクリーン表示 TouchPagingでフルスクリーン表示 タブバーを隠す 左下のピン止めを外すとタブバーとタイトルバーが自動で隠れるようになります。 タブバーを表示させたい場合はカーソルを上下どちらかに持っていくと表示されます。 ページの先頭に戻る
https://w.atwiki.jp/godot-jpn/pages/11.html
ゲーム起動時からフルスクリーンで起動したい 初期設定でフルスクリーンにしておきたい場合は、プロジェクト設定 Display WindowのFullscreenをオンにすれば良い。 ただ昨今のゲームでは遊んでる最中にフルスクリーンとウィンドウを切り替えられるのが普通なので、スクリプトからフルスクリーンとウィンドウを切り替える方法を記す。 ゲームプレイ中にフルスクリーンを切り替えたい OS.set_window_fullscreen(bool)を実行すれば良い。引数のboolはtrueを設定すればフルスクリーンになり、falseを指定すればウィンドウになる。 下記のサンプルコードはボタンを押したらフルスクリーンモードとウィンドウモードが切り替わる。 コピペ用 extends Node2D export (NodePath) var button_path onready var button = get_node(button_path) func _ready() button.set_text("フルスクリーン切り替え") button.connect("pressed", self, "_button_pressed") func _button_pressed() OS.set_window_fullscreen(!OS.window_fullscreen)
https://w.atwiki.jp/waito/pages/47.html
html head title フルスクリーン化 /title /head body script type="text/javascript" window.open("test.html", "_blank", "fullscreen=yes"); /script /body /html
https://w.atwiki.jp/opengl/pages/60.html
フルスクリーンで起動します。 GLUT にはゲームモードというのがあり、これを使うと簡単にフルスクリーンにできます。 ゲームモードを使う場合は glutCreateWindow を使ってはいけません。 強制終了してしまいます。 サンプルプログラムはESCキーを押すと終了します。 ファイル main.cpp main.cpp #pragma comment(linker, /SUBSYSTEM WINDOWS /ENTRY mainCRTStartup ) #include GL/freeglut/freeglut.h void display(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glutSwapBuffers(); } void idle(void) { glutPostRedisplay(); } void Init(){ glClearColor(1.0, 1.0, 1.0, 1.0); } void keyboard(unsigned char key, int x, int y) { if(key==27)exit(0);//ESCキーで終了 } int main(int argc, char *argv[]) { glutInit( argc, argv); glutGameModeString ( 640x480 32@60 ); glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE); glutEnterGameMode (); glutDisplayFunc(display); glutKeyboardFunc(keyboard); glutIdleFunc(idle); Init(); glutMainLoop(); return 0; }
https://w.atwiki.jp/directx/pages/15.html
Alt + Enter でウインドウモードとフルスクリーンを切り替えます。 //---------------------------------------------------------- // フルスクリーン切り替え ( Alt + Enter ) //-------------------------------------------------------------- #include windows.h #include d3dx9.h #include dxerr9.h #define RELEASE(x) if(x){x- Release();x=NULL;} HINSTANCE g_hInstance = NULL; // インスタンス・ハンドル HWND g_hWindow = NULL; // ウインドウ・ハンドル HMENU g_hMenu = NULL; // メニュー・ハンドル LPCSTR g_szAppTitle = DirectX9 Screen Change ; LPCSTR g_szWndClass = Window1 ; RECT g_rectWindow; // ウインドウ・モードでの最後の位置 // 起動時の描画領域サイズ bool g_bWindow = true; // 起動時の画面モード SIZE g_sizeWindowMode = { 640, 480 }; // ウインドウ・モード SIZE g_sizeFullMode = { 640, 480 }; // フルスクリーン・モード D3DFORMAT g_formatFull = D3DFMT_X8R8G8B8; // ディスプレイ(バック・バッファ)・フォーマット // アプリケーションの動作フラグ bool g_bActive = false; // アクティブ状態 /*------------------------------------------- グローバル変数(DirectX関連) --------------------------------------------*/ // インターフェイス LPDIRECT3D9 g_pD3D = NULL; // Direct3Dインターフェイス LPDIRECT3DDEVICE9 g_pD3DDevice = NULL; // Direct3DDeviceインターフェイス D3DPRESENT_PARAMETERS g_D3DPP; // D3DDeviceの設定(現在) D3DPRESENT_PARAMETERS g_D3DPPWindow; // D3DDeviceの設定(ウインドウ・モード用) D3DPRESENT_PARAMETERS g_D3DPPFull; // D3DDeviceの設定(フルスクリーン・モード用) bool g_bDeviceLost = false; // デバイスの消失フラグ /*------------------------------------------- 関数定義 --------------------------------------------*/ LRESULT CALLBACK MainWndProc(HWND hWnd,UINT msg,UINT wParam,LONG lParam); /*------------------------------------------- アプリケーション初期化(最初に一度だけ呼ばれる) --------------------------------------------*/ HRESULT InitApp(HINSTANCE hInst) { // アプリケーションのインスタンス・ハンドルを保存 g_hInstance = hInst; // IMEを禁止する ImmDisableIME(-1); // このスレッドで禁止 // ウインドウ・クラスの登録 WNDCLASSEX wcex; wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndProc = (WNDPROC)MainWndProc; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance = hInst; wcex.hIcon = NULL; wcex.hIconSm = NULL; wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wcex.lpszMenuName = NULL; wcex.lpszClassName = g_szWndClass; if (!RegisterClassEx( wcex)) return DXTRACE_ERR( InitApp , GetLastError()); // メイン・ウインドウ作成 g_rectWindow.top = 0; g_rectWindow.left = 0; g_rectWindow.right = g_sizeWindowMode.cx; g_rectWindow.bottom = g_sizeWindowMode.cy; AdjustWindowRect( g_rectWindow, WS_OVERLAPPEDWINDOW, FALSE); g_rectWindow.right = g_rectWindow.right - g_rectWindow.left; g_rectWindow.bottom = g_rectWindow.bottom - g_rectWindow.top; g_rectWindow.top = 0; g_rectWindow.left = 0; RECT rect; if (g_bWindow) { // (ウインドウ・モード用) rect.top = CW_USEDEFAULT; rect.left = CW_USEDEFAULT; rect.right = g_rectWindow.right; rect.bottom = g_rectWindow.bottom; } else { // (フルスクリーン・モード用) rect.top = 0; rect.left = 0; rect.right = g_sizeFullMode.cx; rect.bottom = g_sizeFullMode.cy; //g_hMenu = LoadMenu(g_hInstance, MAKEINTRESOURCE(IDR_MENU1)); } g_hWindow = CreateWindow(g_szWndClass, g_szAppTitle, g_bWindow ? WS_OVERLAPPEDWINDOW WS_POPUP, rect.left, rect.top, rect.right, rect.bottom, NULL, NULL, hInst, NULL); if (g_hWindow == NULL) return DXTRACE_ERR( InitApp , GetLastError()); // ウインドウ表示 ShowWindow(g_hWindow, SW_SHOWNORMAL); UpdateWindow(g_hWindow); return S_OK; } /*------------------------------------------- DirectX Graphics初期化 --------------------------------------------*/ HRESULT InitDXGraphics(void) { // Direct3Dオブジェクトの作成 g_pD3D = Direct3DCreate9(D3D_SDK_VERSION); if (g_pD3D == NULL) return DXTRACE_ERR( InitDXGraphics Direct3DCreate9 , E_FAIL); // D3DDeviceオブジェクトの設定(ウインドウ・モード用) ZeroMemory( g_D3DPPWindow, sizeof(g_D3DPPWindow)); g_D3DPPWindow.BackBufferWidth = 0; g_D3DPPWindow.BackBufferHeight = 0; g_D3DPPWindow.BackBufferFormat = D3DFMT_UNKNOWN; g_D3DPPWindow.BackBufferCount = 1; g_D3DPPWindow.MultiSampleType = D3DMULTISAMPLE_NONE; g_D3DPPWindow.MultiSampleQuality = 0; g_D3DPPWindow.SwapEffect = D3DSWAPEFFECT_DISCARD; g_D3DPPWindow.hDeviceWindow = g_hWindow; g_D3DPPWindow.Windowed = TRUE; g_D3DPPWindow.EnableAutoDepthStencil = FALSE; g_D3DPPWindow.AutoDepthStencilFormat = D3DFMT_A1R5G5B5; g_D3DPPWindow.Flags = 0; g_D3DPPWindow.FullScreen_RefreshRateInHz= 0; g_D3DPPWindow.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE; // D3DDeviceオブジェクトの設定(フルスクリーン・モード) ZeroMemory( g_D3DPPFull, sizeof(g_D3DPPFull)); g_D3DPPFull.BackBufferWidth = g_sizeFullMode.cx; g_D3DPPFull.BackBufferHeight = g_sizeFullMode.cy; g_D3DPPFull.BackBufferFormat = g_formatFull; g_D3DPPFull.BackBufferCount = 1; g_D3DPPFull.MultiSampleType = D3DMULTISAMPLE_NONE; g_D3DPPFull.MultiSampleQuality = 0; g_D3DPPFull.SwapEffect = D3DSWAPEFFECT_DISCARD; g_D3DPPFull.hDeviceWindow = g_hWindow; g_D3DPPFull.Windowed = FALSE; g_D3DPPFull.EnableAutoDepthStencil = FALSE; g_D3DPPFull.AutoDepthStencilFormat = D3DFMT_A1R5G5B5; g_D3DPPFull.Flags = 0; g_D3DPPFull.FullScreen_RefreshRateInHz = 0; g_D3DPPFull.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE; // D3DDeviceオブジェクトの作成 if (g_bWindow) g_D3DPP = g_D3DPPWindow; else g_D3DPP = g_D3DPPFull; HRESULT hr = g_pD3D- CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, g_hWindow, D3DCREATE_HARDWARE_VERTEXPROCESSING, g_D3DPP, g_pD3DDevice); if (FAILED(hr)) { hr = g_pD3D- CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_REF, g_hWindow, D3DCREATE_SOFTWARE_VERTEXPROCESSING, g_D3DPP, g_pD3DDevice); if (FAILED(hr)) return DXTRACE_ERR( InitDXGraphics CreateDevice , hr); } // ビューポートの設定 D3DVIEWPORT9 vp; vp.X = 0; vp.Y = 0; vp.Width = g_D3DPP.BackBufferWidth; vp.Height = g_D3DPP.BackBufferHeight; vp.MinZ = 0.0f; vp.MaxZ = 1.0f; hr = g_pD3DDevice- SetViewport( vp); if (FAILED(hr)) return DXTRACE_ERR( InitDXGraphics SetViewport , hr); return S_OK; } /*-------------------------------------------- 画面の描画処理 --------------------------------------------*/ HRESULT Render(void) { // シーンのクリア g_pD3DDevice- Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(255, 255, 255), 1.0f, 0); // シーンの描画開始 if (SUCCEEDED(g_pD3DDevice- BeginScene())) { // シーンの描画終了 g_pD3DDevice- EndScene(); } // シーンの表示 return g_pD3DDevice- Present(NULL, NULL, NULL, NULL); } /*------------------------------------------- ウインドウ・サイズの変更 --------------------------------------------*/ HRESULT ChangeWindowSize(void) { // ウインドウのクライアント領域に合わせる HRESULT hr = g_pD3DDevice- Reset( g_D3DPP); if (FAILED(hr)) { if (hr == D3DERR_DEVICELOST) g_bDeviceLost = true; else DestroyWindow(g_hWindow); return DXTRACE_ERR( ChangeWindowSize Reset , hr); } // ビューポートの設定 D3DVIEWPORT9 vp; vp.X = 0; vp.Y = 0; vp.Width = g_D3DPP.BackBufferWidth; vp.Height = g_D3DPP.BackBufferHeight; vp.MinZ = 0.0f; vp.MaxZ = 1.0f; hr = g_pD3DDevice- SetViewport( vp); if (FAILED(hr)) { DXTRACE_ERR( ChangeWindowSize SetViewport , hr); DestroyWindow(g_hWindow); } return hr; } /*------------------------------------------- 画面モードの変更 --------------------------------------------*/ void ChangeDisplayMode(void) { g_bWindow = !g_bWindow; if (g_bWindow) { g_D3DPP = g_D3DPPWindow; } else { g_D3DPP = g_D3DPPFull; GetWindowRect(g_hWindow, g_rectWindow); } HRESULT hr = g_pD3DDevice- Reset( g_D3DPP); if (FAILED(hr)) { if (hr == D3DERR_DEVICELOST) g_bDeviceLost = true; else DestroyWindow(g_hWindow); DXTRACE_ERR( ChangeDisplayMode Reset , hr); return; } if (g_bWindow) { SetWindowLong(g_hWindow, GWL_STYLE, WS_OVERLAPPEDWINDOW | WS_VISIBLE); if(g_hMenu != NULL) { SetMenu(g_hWindow, g_hMenu); g_hMenu = NULL; } SetWindowPos(g_hWindow, HWND_NOTOPMOST, g_rectWindow.left, g_rectWindow.top, g_rectWindow.right - g_rectWindow.left, g_rectWindow.bottom - g_rectWindow.top, SWP_SHOWWINDOW); } else { SetWindowLong(g_hWindow, GWL_STYLE, WS_POPUP | WS_VISIBLE); if(g_hMenu == NULL) { g_hMenu = GetMenu(g_hWindow); SetMenu(g_hWindow, NULL); } } } /*------------------------------------------- DirectX Graphicsの終了処理(初期化に失敗したときも呼ばれる) --------------------------------------------*/ bool CleanupDXGraphics(void) { RELEASE(g_pD3DDevice); RELEASE(g_pD3D); return true; } /*------------------------------------------- アプリケーションの終了処理(最後に呼ばれる) --------------------------------------------*/ bool CleanupApp(void) { // メニュー・ハンドルの削除 if (g_hMenu) DestroyMenu(g_hMenu); // ウインドウ・クラスの登録解除 UnregisterClass(g_szWndClass, g_hInstance); return true; } /*------------------------------------------- ウィンドウ処理 --------------------------------------------*/ LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, UINT wParam, LONG lParam) { HRESULT hr = S_OK; switch(msg) { case WM_ACTIVATE g_bActive = (LOWORD(wParam) != 0); break; case WM_DESTROY // DirectX Graphicsの終了処理 CleanupDXGraphics(); // ウインドウを閉じる PostQuitMessage(0); g_hWindow = NULL; return 0; // ウインドウ・サイズの変更処理 case WM_SIZE if (g_D3DPP.Windowed != TRUE) break; if (!g_pD3DDevice || wParam == SIZE_MINIMIZED) break; g_D3DPP.BackBufferWidth = LOWORD(lParam); g_D3DPP.BackBufferHeight = HIWORD(lParam); if(g_bDeviceLost) break; if (wParam == SIZE_MAXIMIZED || wParam == SIZE_RESTORED) ChangeWindowSize(); break; case WM_SETCURSOR if (g_D3DPP.Windowed != TRUE) { SetCursor(NULL); return 1; } break; case WM_KEYDOWN // キー入力の処理 switch(wParam) { case VK_ESCAPE // [ESCAPE]キーでウインドウを閉じる PostMessage(hWnd, WM_CLOSE, 0, 0); break; } break; case WM_SYSKEYDOWN // Alt + 特殊キーの処理に使う switch(wParam) { case VK_RETURN // Alt + Enterを押すと切り替え ChangeDisplayMode(); break; default break; } break; } // デフォルト処理 return DefWindowProc(hWnd, msg, wParam, lParam); } /*-------------------------------------------- アイドル時の処理 --------------------------------------------*/ bool AppIdle(void) { if (!g_pD3D || !g_pD3DDevice) return false; if (!g_bActive) return true; // 消失したデバイスの復元処理 HRESULT hr; if (g_bDeviceLost) { Sleep(100); // 0.1秒待つ // デバイス状態のチェック hr = g_pD3DDevice- TestCooperativeLevel(); if (FAILED(hr)) { if (hr == D3DERR_DEVICELOST) return true; // デバイスはまだ失われている if (hr != D3DERR_DEVICENOTRESET) return false; // 予期せぬエラー hr = g_pD3DDevice- Reset( g_D3DPP); // 復元を試みる if (FAILED(hr)) { if (hr == D3DERR_DEVICELOST) return true; // デバイスはまだ失われている DXTRACE_ERR( AppIdle Reset , hr); return false; // デバイスの復元に失敗 } } // デバイスが復元した g_bDeviceLost = false; } // 画面の更新 hr = Render(); if (hr == D3DERR_DEVICELOST) g_bDeviceLost = true; // デバイスの消失 else if (FAILED(hr)) return false; return true; } /*-------------------------------------------- メイン ---------------------------------------------*/ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nCmdShow) { // アプリケーションに関する初期化 HRESULT hr = InitApp(hInst); if (FAILED(hr)) { DXTRACE_ERR( WinMain InitApp , hr); return 0; } // DirectX Graphicsの初期化 hr = InitDXGraphics(); if (FAILED(hr)) DXTRACE_ERR( WinMain InitDXGraphics , hr); // メッセージ・ループ MSG msg; do { if (PeekMessage( msg, 0, 0, 0, PM_REMOVE)) { TranslateMessage( msg); DispatchMessage( msg); } else { // アイドル処理 if (!AppIdle()) // エラーがある場合,アプリケーションを終了する DestroyWindow(g_hWindow); } } while (msg.message != WM_QUIT); // アプリケーションの終了処理 CleanupApp(); return msg.wParam; }
https://w.atwiki.jp/opengl/pages/66.html
GLUT のゲームモードを使用するとフルスクリーンで起動できました。 しかし、ゲームモードを使用するとウインドウモードにする事はできません。 一般的なゲームアプリではフルスクリーンとウインドウモードを何度も切り替え できるのが普通です。 では具体的にどうするのかというと、GLUT にはそのような機能はありませんので WindowsAPI を使って実装します。 今回のプログラムはスペースキーを押すとフルスクリーンとウインドウモードを交互に 切り替えます。 ファイル main.cpp main.cpp #pragma comment(linker, /SUBSYSTEM WINDOWS /ENTRY mainCRTStartup ) #include GL/freeglut/freeglut.h #define WIDTH 640 #define HEIGHT 480 bool Change=false;//切り替えフラグ void display(void) { glClear(GL_COLOR_BUFFER_BIT); glutSwapBuffers(); } void fullscreen(){ int nMode = 0; DEVMODE devMode; HWND hWnd; hWnd = GetActiveWindow(); if(Change){ glClearColor( 1.0f, 1.0f, 0.0f, 1.0f ); while( EnumDisplaySettings( NULL, nMode++, devMode )){ //640×480をサポートしているか if( devMode.dmPelsWidth != WIDTH || devMode.dmPelsHeight != HEIGHT)continue; //32ビットカラーをサポートしているか if( devMode.dmBitsPerPel != 32 )continue; //テストして切り替えれるなら if( ChangeDisplaySettings( devMode, CDS_TEST ) == DISP_CHANGE_SUCCESSFUL )break; } ChangeDisplaySettings( devMode, CDS_FULLSCREEN ); glutFullScreen(); }else{ glClearColor( 0.0f, 1.0f, 0.0f, 1.0f ); ChangeDisplaySettings(NULL, 0); glutPositionWindow(100,100); glutReshapeWindow(WIDTH,HEIGHT); } } void key(unsigned char key , int x , int y) { if(key == ){//スペースキーでウインドウモードを切り替え if(Change == false){Change = true;}else{Change = false;} fullscreen(); } } void idle(void) { glutPostRedisplay(); } int main(int argc, char *argv[]) { glutInitWindowPosition(100, 100); glutInitWindowSize(WIDTH, HEIGHT); glutInit( argc, argv); glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE); glutCreateWindow( スペースキーでフルスクリーンとウインドウモード切替 ); glutDisplayFunc(display); glutIdleFunc(idle); glutKeyboardFunc(key); glClearColor( 0.0f, 1.0f, 0.0f, 1.0f ); glutMainLoop(); return 0; }
https://w.atwiki.jp/memoprogram/pages/27.html
指定されたウィンドウの表示状態を設定する。 BOOL ShowWindow( HWND hWnd, //#1 ウィンドウのハンドル int nCmdShow // 表示状態 ); 引数 #1 hWnd 設定するウィンドウハンドルを指定する。 #2 nCmdShow 以下の識別子からウィンドウの表示方法を指定する。 SW_HIDE ウィンドウを非表示にし、他のウィンドウをアクティブにします。 SW_MAXIMIZE ウィンドウを最大化します。 SW_MINIMIZE ウィンドウを最小化し、Z オーダーが次のトップレベルウィンドウをアクティブにします。 SW_RESTORE ウィンドウをアクティブにして表示します。最小化または最大化されていたウィンドウは、元の位置とサイズに戻ります。最小化されているウィンドウを元に戻す場合は、このフラグをセットします。 SW_SHOW ウィンドウをアクティブにして、現在の位置とサイズで表示します。 SW_SHOWDEFAULT アプリケーションを起動したプログラムが 関数に渡した 構造体で指定された SW_ フラグに従って表示状態を設定します。 SW_SHOWMAXIMIZED ウィンドウをアクティブにして、最大化します。 SW_SHOWMINIMIZED ウィンドウをアクティブにして、最小化します。 SW_SHOWMINNOACTIVE ウィンドウを最小化します。 SW_SHOWMINIMIZED と似ていますが、この値を指定した場合は、ウィンドウはアクティブ化されません。 SW_SHOWNA ウィンドウを現在のサイズと位置で表示します。 SW_SHOW と似ていますが、この値を指定した場合は、ウィンドウはアクティブ化されません。 SW_SHOWNOACTIVATE ウィンドウを直前の位置とサイズで表示します。 SW_SHOWNORMAL と似ていますが、この値を指定した場合は、ウィンドウはアクティブ化されません。 SW_SHOWNORMAL ウィンドウをアクティブにして表示します。ウィンドウが最小化または最大化されていた場合は、その位置とサイズを元に戻します。初めてウィンドウを表示するときには、このフラグを指定してください。 戻り値 ウィンドウが以前から表示されていた場合は、0 以外が返る。 ウィンドウが以前は非表示だった場合は、0 が返る。